Mathematical logics for computing and their application. The concept of an algorithm and heuristic. Fundamental algorithms for searching and sorting. Concepts of Algorithmic complexity. Time/memory algorithmic classes. Procedural, Functional and logic. Programming paradigms. Data structures. Concepts of execution and binding. Algorithmic sufficiency versus efficiency Requirements driven design of algorithms Impact of software design on hardware. -- Course Website
Prerequisites: 313670 (v.1)<br/> Engineering Programming 210<br/> <br/> or any previous version